/**
 * Created by congzhang on 17/11/7.
 */


var express = require("express");
var bodyParser = require("body-parser");



var app = express();

// 中间件
app.use(function (req, res, next) {
    res.setHeader("Content-Type", "text/plain;charset=utf8");

    next();  // 表示允许继续执行  如果不允许继续执行,则可以使用  res.end() 方法进行返回结束请求
});

app.use(function (req, res, next) {
    bodyParser.urlencoded({extended: false});       // 将 post 请求中的请求体数据转成一个对象
    next();
    // bodyParser.urlencoded({ extended: false })
});


// 匹配访问 /index 的 get 请求
app.get("/index", function (req, res) {

    res.end("首页")

});


// 匹配访问 /home 的所有请求
app.all("/home", function (req, res) {

    console.log(req.host);  // 请求头中的主机名
    console.log(req.path);  // 访问路径
    console.log(req.query);     // get请求中的查询字符串转成的对象,默认为 {}
    console.log(req.method);    // 请求方法  post get put delete

    res.end("主页面")
});


// 匹配访问 /blog 的get请求
app.get("/blog/:id/:name", function (req, res) {

    console.log(req.params);    // 输出 请求url 中的路径参数对象,例如: 访问 /blog/1/zhangcong  返回 { id: '1', name: 'zhangcong' }
    res.send("博客页面");   // send() 方法向浏览器发送响应,并可以智能处理不同类型的数据。并在输出响应时会自动进行一些设置,比如 header 信息、http 缓存支持等
    /*
    * 当参数为一个 String 时, Content-Type 默认设置为 "text/html"
    * res.send([body|status], [body])
    *
    * 当参数为 Array 或 Object 时, Express 会返回一个 JSON
    * res.send({user: "tobi"})
    *
    * 不能使用数字作为参数,如果要返回状态码,例如 404, 200 使用 res.sendStatus 方法
    *
    * */
    // res.end("博客页面")
});


app.get("*", function (req, res) {

    res.end("404")
});

app.listen(8081, "0.0.0.0");